<?php
  
class ftp extends Plugin
{
    public function __construct ( ) 
    {
        parent::__construct();
        $this->scope[]   = 'template';
        $this->droits    = 'ADMIN';
        $this->nom       = 'FTP local';
        $this->className = 'ftp';
        $this->desc      = "Ce plugin permet d'ajouter des éléments rapidement à partir de la machine sur laquelle phpLister est installé.";
        $this->uniId     = 'FTPUNIID';
        $this->version   = '0.1';        
        $this->content   = 
            '<form action="index.php" method="post">
                <p>
                    <a href="#" id="pluginFtpGo">Cliquez ici pour lancer la navigation</a>
                    <div id="pluginFtpDir"></div>
                    <input type="hidden" name="PLUGIN" value="ftp" />
                    <label for="PLUGINFTPAutotag" title="Détecte les tags selon les noms de répertoires">
                        <input type="checkbox" name="PLUGINFTPAutotag" id="PLUGINFTPAutotag" />
                        Autotag
                    </label>
                    <label for="PLUGINFTPAutotagplus" title="Détecte d\'une façon expérimentale (autotag doit être activé)">
                        <input type="checkbox" name="PLUGINFTPAutotagplus" id="PLUGINFTPAutotagplus" />
                        Autotag+
                    </label>
                    <label for="PLUGINFTPPublique" title="Définit la visibilité des éléments ajoutés">
                        <input type="checkbox" name="PLUGINFTPPublique" id="PLUGINFTPPublique" />
                        Publique
                    </label><br />
                    <input type="submit" value="Ajouter les fichiers" />
                    <input class="bAnnuler" value="Annuler" type="button">
                </p>
            </form>
            <script type="text/javascript">
            Event.observe("pluginFtpGo", "click", function(e)
            {
                debLoad();
                new Ajax.Updater("pluginFtpDir", "plugin/ftp/ftp.inc.php?action=dir",
                {
                    method:"get",        
                    onComplete: finLoad,
                    evalScripts: true
                });
                Element.hide("pluginFtpGo");
                Event.stop(e);
            });
            </script>
            ';
    }

    public function action ( ) 
    {
        if(parent::action() == 'nop') return 'nop';
        if(!$this->ok()) return 'f_err1';
    
        if(!empty($_POST['fichiers']))
        {
            $fichiers = $_POST['fichiers'];

            foreach($fichiers as $f) 
            {
                $tags = null;
                if(isset($_POST['PLUGINFTPAutotag']))
                {
                    $pre = explode('/',$f);
                    unset($pre[count($pre)-1]);
                    $pre = implode('/',$pre);
                    
                    if(isset($_POST['PLUGINFTPAutotagplus']))
                    {
                        $pre = eregi_replace('(_|-| )', '/', $pre);
                    }
                    $tags = explode('/', ($pre));
                }
                
                try
                {
                    $item = new Item(0, 
                                     basename(strtolower($f),'.'.trouveExtention($f)), 
                                     '.'.$f, 
                                     $_SESSION['LOGIN'], 
                                     2);
                    $item->enregistrer();
                    $item->changerPublic(isset($_POST['PLUGINFTPPublique']));
                }
                catch(ListerException $e){}
                
                if(!is_null($tags)) foreach($tags as $tag)
                {
                    try
                    {
                        $ta = new Tag($tag,1);
                        $item->ajouterTag($tag);
                        $ta->enregistrer();

                    }
                    catch(ListerException $e){}
                }
            }
        }
        index();
        return 'ok';
    }    
}

?>
